"""
字节到大整数的打包与解包

问题：
   你有一个字节字符串并想将它解压成一个整数。
   或者，你需要将一个大整数转换为一个字节字符串。
解决方案：
    假设你的程序需要处理一个拥有128位长的16个元素的字节字符串。
    为了将bytes解析为整数，使用 int.from_bytes() 方法。
    为了将一个大整数转换为一个字节字符串，使用 int.to_bytes() 方法。
"""


def use_pack_unpack():
    data = b'\x00\x124V\x00x\x90\xab\x00\xcd\xef\x01\x00#\x004'
    print(int.from_bytes(data, 'little'))
    print(int.from_bytes(data, 'big'))
    # 输出结果：
    """
    69120565665751139577663547927094891008
    94522842520747284487117727783387188
    """

    x = 94522842520747284487117727783387188
    print(x.to_bytes(16, "little"))
    print(x.to_bytes(16, "big"))
    # 输出结果：
    """
    b'4\x00#\x00\x01\xef\xcd\x00\xab\x90x\x00V4\x12\x00'
    b'\x00\x124V\x00x\x90\xab\x00\xcd\xef\x01\x00#\x004'
    """


if __name__ == '__main__':
    use_pack_unpack()
